<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>函数返回值细节</title>
</head>

<body>
  <script>
    // 函数返回值细节
    // 1. return会立即结束当前函数的执行, 在其后面的代码不会被执行
    // function sum(num1 = 0, num2 = 0) {
    //   console.log('我是会被执行的, 我在return之前')
    //   return num1 + num2
    //   console.log('我是不会被执行的, 我在return之后')
    // }

    // console.log(sum(100, 200))

    // 2. return 表达式 return关键字和表达式之前不要换行, 换行意味着: return是一个独立的语句, 表达式也是一个独立的语句
    // function sum(num1 = 0, num2 = 0) {
    //   // return
    //   // num1 + num2
    //   // js底层执行逻辑
    //   // return ;
    //   // num1 + num2;
    // }

    // console.log(sum(100, 200))

    // 3. 函数内部可以没有return, 那么函数的返回值就是undefined
    // function fn() {
    //  // return
    // }

    // console.log(fn()) // undefined

    function sum(num1 = 0, num2 = 0) {
      console.log(num1 + num2) // 300
    }

    console.log(sum(100, 200)) // undefined
  </script>
</body>

</html>